const app = getApp()
Page({
  data: {
    cloudImgList:[],
    inputValue:''
  },
//这段代码只有在页面加载时才会执行，但并不涉及具体的业务逻辑。如果需要实现更多的功能，还需要继续编写其他代码。
  onLoad: function (options) {
    console.log(app.globalData.userInfo)
  },
  //定义了一个名为 "getValue" 的函数，并通过 bindinput 属性绑定到输入框上。当用户在输入框中输入或删除文本时，会触发 bindinput 的事件并执行 GetValue 函数。e.detail.value 表示当前输入框中的实时文本内容，通过 console.log() 方法打印出来以便调试和检查是否正确获取到了数据。
  getValue(e){
    // 将事件对象中的detail.value值打印到控制台，方便调试和检查用户输入的内容。
    console.log(e.detail.value)
     // 使用 setData 方法将用户输入的内容更新到 data 中名为inputValue的属性中
    this.setData({
      inputValue: e.detail.value
    })
  },
   // 使用 setData 方法将用户输入的内容更新到 data 中名为inputValue的属性中
  chooseImage(){
     // 使用 setData 方法将用户输入的内容更新到 data 中名为inputValue的属性中
    var that = this;
     // 使用 setData 方法将用户输入的内容更新到 data 中名为inputValue的属性中
    wx.chooseImage({
      count: 9 - that.data.cloudImgList.length, // 最多可选9张图片，减去已有的即为剩余可选数。
      sizeType: ['original','compressed'], // 最多可选9张图片，减去已有的即为剩余可选数。
      sourceType: ['album','camera'], // 最多可选9张图片，减去已有的即为剩余可选数。
      success(res){ // 最多可选9张图片，减去已有的即为剩余可选数。

        console.log(res)
        console.log(res.tempFilePaths)
        //上传图片
         // 最多可选9张图片，减去已有的即为剩余可选数。
        that.data.tempImgList = res.tempFilePaths
         // 最多可选9张图片，减去已有的即为剩余可选数。
        that.uploadImages()
      }
    })

  },
  // 上传图片到云存储并将返回的fileID保存到cloudImgList数组中
  uploadImages(){
    var that = this;// 缓存this指针
    for(var i = 0 ; i< this.data.tempImgList.length; i++){// 遍历tempImgList数组
      wx.cloud.uploadFile({// 调用wx里的云开发API，上传文件
        cloudPath:`actionImages/${Math.random()}_${Date.now()}.${this.data.tempImgList[i].match(/\.(\w+)$/)[1]}`,
        filePath: this.data.tempImgList[i],// 调用wx里的云开发API，上传文件
        success(res){ // 上传成功后的回调函数
          console.log(res.fileID) // 打印上传结果中的fileID
          that.data.cloudImgList.push(res.fileID) // 将fileID添加到cloudImgList数组中
          that.setData({
            cloudImgList:that.data.cloudImgList// 更新视图层，使新增的上传图片能够实时渲染
          })
        }
      })
    }

  },

  // 从cloudImgList数组中删除指定下标的fileID并更新视图层
  deleteImg(e){
    console.log(e.currentTarget.dataset.index)// 打印当前组件的下标
    // 删除在dataset中存储的点击图片的下标对应的元素（删除一个元素）
    this.data.cloudImgList.splice(e.currentTarget.dataset.index,1)
    this.setData({
       // 更新视图层，使删除后的上传图片能够实时渲染
      cloudImgList: this.data.cloudImgList
    })
  },

  submitData(){
    // 显示发送请求加载动画
    wx.showLoading({
      title: '发布中',
      mask:'true'// 是否显示透明蒙层
    })
    // 调用云函数，实现数据的添加操作
    wx.cloud.database().collection('school_loves').add({
      data: {
        nickName: app.globalData.userInfo.nickName,// 发布人昵称
        faceImg: app.globalData.userInfo.avatarUrl,// 发布人头像
        text: this.data.inputValue,// 发布人头像
        images: this.data.cloudImgList,// 发布的图片列表
        school:app.globalData.userInfo.school,// 发布人学校名称
        time: Date.now(), // 发布时间
        prizeList: [],// 点赞列表
        commentList: []// 评论列表
      },
      success(res){// 添加成功后的回调函数
        console.log(res)// 打印添加数据的返回值
        wx.navigateBack({// 返回上一页
          success(res){
            wx.hideLoading({// 隐藏加载动画
              success: (res) => {},
            })
            wx.showToast({// 显示操作成功提示信息
              title: '发布成功！',
            })
          }
        })
      }

    })
  }
  
  


})